<h1>Editar Reservacion</h1>

<br/>

<div class="form-horizontal">
    <div class="form-group">
        <label for="inputFechaInicioEditar" class="col-sm-2 control-label">Fecha Inicio</label>
        <div class="col-sm-4">
            <div id="inputFechaInicioEditar-message"></div>
            <input type="date" class="form-control" id="inputFechaInicioEditar" value="<?php echo $decReservacion->getResFechaEntrada(); ?>">
        </div>
        <label for="inputFechaFinEditar" class="col-sm-2 control-label">Fecha Fin</label>
        <div class="col-sm-4">
            <div id="inputFechaFinEditar-message"></div>
            <input type="date" class="form-control" id="inputFechaFinEditar" value="<?php echo $decReservacion->getResFechaSalida(); ?>">
        </div>
    </div>
</div>

<div class="panel panel-default">
    <div class="panel-body">
        <div class="form-horizontal">
            <div class="form-group">
                <label for="inputEdificioEditar" class="col-sm-2 control-label">Edificio</label>
                <div class="col-sm-10">
                    <input type="text" readonly="readonly" class="form-control" id="inputHabitacion" value="<?php echo $decEdificio->getEdiEdificio(); ?>">
                </div>
            </div>

            <div class="form-group">
                <label for="inputTipoEditar" class="col-sm-2 control-label">Tipo</label>
                <div class="col-sm-10">
                    <input type="text" readonly="readonly" class="form-control" id="inputTipoEditar" value="<?php echo $decHabitacionTipo->getHatTipo(); ?>">
                </div>
            </div>

            <div class="form-group">
                <label for="inputNumeroEditar" class="col-sm-2 control-label">Numero</label>
                <div class="col-sm-10">
                    <input type="text" readonly="readonly" class="form-control" id="inputNumeroEditar" value="<?php echo $decHabitacion->getHabNumero(); ?>">
                </div>
            </div>
        </div>
    </div>
</div>

<div class="form-horizontal">
    <div class="form-group">
        <label for="inputClienteEditar" class="col-sm-2 control-label">Cliente</label>
        <div class="col-sm-10">
            <input type="text" readonly="readonly" class="form-control" id="inputClienteEditar" value="<?php echo $decPersona->getPerNombreCompleto(); ?>">
        </div>
    </div>

    <div class="form-group">
        <label for="inputAdultosEditar" class="col-sm-2 control-label">Cantidad de Adultos</label>
        <div class="col-sm-10">
            <div id="inputAdultosEditar-message"></div>
            <input type="text" class="form-control" id="inputAdultosEditar" placeholder="Cantidad de Adultos" value="<?php echo $decReservacion->getResNumeroAdultos(); ?>">
        </div>
    </div>

    <div class="form-group">
        <label for="inputNinosEditar" class="col-sm-2 control-label">Cantidad de Niños</label>
        <div class="col-sm-10">
            <div id="inputNinosEditar-message"></div>
            <input type="text" class="form-control" id="inputNinosEditar" placeholder="Cantidad de Niños" value="<?php echo $decReservacion->getResNumeroNinos(); ?>">
        </div>
    </div>

    <div class="form-group">
        <label for="inputEstadoEditar" class="col-sm-2 control-label">Estado</label>
        <div class="col-sm-10">
            <select class="form-control" id="inputEstadoEditar" placeholder="Tipo">
                <?php $selected = $decReservacion->getResEstado() == "RESERVADO" ? "selected='selected'" : ""; ?>
                <option value="RESERVADO" <?php echo $selected; ?>>Reservado</option>

                <?php $selected = $decReservacion->getResEstado() == "CONFIRMADO" ? "selected='selected'" : ""; ?>
                <option value="CONFIRMADO" <?php echo $selected; ?>>Confirmado</option>

                <?php $selected = $decReservacion->getResEstado() == "CANCELADO" ? "selected='selected'" : ""; ?>
                <option value="CANCELADO" <?php echo $selected; ?>>Cancelado</option>

                <?php $selected = $decReservacion->getResEstado() == "FINALIZADO" ? "selected='selected'" : ""; ?>
                <option value="FINALIZADO" <?php echo $selected; ?>>Finalizado</option>
            </select>
        </div>
    </div>

    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="button" class="btn btn-danger" id="btnCancelEditar"><span class="glyphicon glyphicon-ban-circle"></span> Cancelar / Salir</button>
            <button type="button" class="btn btn-primary" id="btnEditarEditar"><span class="glyphicon glyphicon-edit"></span> Editar</button>
            <?php
            if ($decReservacion->getResEstado() == "FINALIZADO") {
                echo "<button type='button' class='btn btn-primary' id='btnPrintBill'><span class='glyphicon glyphicon-print'></span> Imprimir Factura</button>";
            }
            ?>
        </div>
    </div>

    <br/>

    <fieldset>
        <legend>Productos</legend>

        <?php
        if ($decReservacion->getResEstado() == "CONFIRMADO" || $decReservacion->getResEstado() == "FINALIZADO") {
            echo "<button type='button' class='btn btn-primary' id='btnAddProduct'><span class='glyphicon glyphicon-check'></span> Agregar Producto</button>";
            echo "<br/>";
            echo "<br/>";
        }
        ?>

        <div id="divProducts">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>#</th>
                        <th>Categoria</th>
                        <th>Producto</th>
                        <th>Cantidad</th>
                        <th>Subtotal</th>
                        <th>Accion</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                    $n = 0;
                    $total = 0;

                    foreach ($decFacturaDetalleTable as $object) {
                        $decFacturaDetalle = new DecFacturaDetalle();
                        $decFacturaDetalle = (object) $object;

                        $decProducto = new DecProducto();
                        $decProducto = (object) $decFacturaDetalle->getDecProducto();

                        $decCategoria = new DecCategoria();
                        $decCategoria = (object) $decProducto->getDecCategoria();

                        $n++;
                        $total += $decFacturaDetalle->getFadSubtotal();

                        echo "<tr>";
                        echo "<td>{$n}</td>";
                        echo "<td>{$decCategoria->getCatCategoria()}</td>";
                        echo "<td>{$decProducto->getPrdNombre()}</td>";
                        echo "<td>{$decFacturaDetalle->getFadCantidad()}</td>";
                        echo "<td>{$decFacturaDetalle->getFadSubtotal()}</td>";
                        echo "<td><button type='button' class='btn btn-xs btn-danger' onClick='deleteFacturaDetalle({$decFacturaDetalle->getFadId()})'><span class='glyphicon glyphicon-remove'></span> Eliminar</button></td>";
                        echo "</tr>";
                    }
                    ?>
                </tbody>
                <tfoot>
                    <tr>
                        <td colspan="4">TOTAL</td>
                        <td colspan="2"><?php echo $total; ?></td>
                    </tr>
                </tfoot>
            </table>
        </div>
    </fieldset>
</div>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Cerrar</span></button>
                <h4 class="modal-title" id="myModalLabel">Agregar Producto</h4>
            </div>
            <div class="modal-body">
                Cantidad

                <div class="input-group spinner">
                    <input type="text" class="form-control" readonly="readonly" value="1">
                    <div class="input-group-btn-vertical">
                        <button class="btn btn-default"><i class="">˄</i></button>
                        <button class="btn btn-default"><i class="">˅</i></button>
                    </div>
                </div>

                <br/>

                <table>
                    <tr>
                        <td>Categoria</td>
                        <td>&nbsp;</td>
                        <td>Producto</td>
                        <td>&nbsp;</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>
                            <select class="form-control" id="selectCategoria">
                                <option value="0">Seleccione uno</option>
                                <?php
                                foreach ($decCategoriaTable as $object) {
                                    $decCategoria = new DecCategoria();
                                    $decCategoria = (object) $object;

                                    echo "<option value='{$decCategoria->getCatId()}'>{$decCategoria->getCatCategoria()}</option>";
                                }
                                ?>
                            </select>
                        </td>
                        <td>&nbsp;</td>
                        <td>
                            <select class="form-control" id="selectProducto">
                                <option value="0">Seleccione uno</option>
                            </select>
                        </td>
                        <td>&nbsp;</td>
                        <td>
                            <button type="button" class="btn btn-default" id="btnAddNewProduct"><span class="glyphicon glyphicon-plus"></span> Agergar</button>
                        </td>
                    </tr>
                </table>

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
            </div>
        </div>
    </div>
</div>

<script>
    $(document).ready(function () {
        /* LISTENER */
        $("#btnEditarEditar").click(function () {
            if (isValid()) {
                editarReservacion();
            }
        });
        $("#btnCancelEditar").click(function () {
            cancelar();
        });
        $("#btnPrintBill").click(function () {
            window.open(
                    "<?php echo url_for("reservacion_lista/print") . "?id=" . $decReservacion->getResId(); ?>",
                    "_blank"
                    );
        });
        $("#btnAddProduct").click(function () {
            resertModal();
            $("#myModal").modal("show");
        });
        $("#selectCategoria").change(function () {
            getProductsFromCategory();
        });
        $("#btnAddNewProduct").click(function () {
            addNewProduct();
        });
        /* SPINNER */
        $(".spinner .btn:first-of-type").on("click", function () {
            $(".spinner input").val(parseInt($(".spinner input").val(), 10) + 1);
        });
        $(".spinner .btn:last-of-type").on("click", function () {
            if ($(".spinner input").val() > 1) {
                $(".spinner input").val(parseInt($(".spinner input").val(), 10) - 1);
            }
        });
    });

    function isValid() {
        var valid = true;

        var id = "inputFechaInicioEditar";
        if (isEmpty($("#" + id).val())) {
            valid = false;
            setError(id, "Campo requerido");
        } else {
            clearError(id);
        }

        var id = "inputFechaFinEditar";
        if (isEmpty($("#" + id).val())) {
            valid = false;
            setError(id, "Campo requerido");
        } else {
            var dateDesde = new Date($("#inputFechaInicioEditar").val());
            var dateHasta = new Date($("#inputFechaFinEditar").val());
            if (dateHasta < dateDesde) {
                valid = false;
                setError(id, "La fecha final debe ser mayor");
            } else {
                clearError(id);
            }
        }

        var id = "inputAdultosEditar";
        if (!isInteger($("#" + id).val())) {
            valid = false;
            setError(id, "Debe ser un valor entero numerico");
        } else {
            if (0 > $("#" + id).val()) {
                valid = false;
                setError(id, "Debe ser un valor numerico positivo");
            } else {
                clearError(id);
            }
        }

        var id = "inputNinosEditar";
        if (!isInteger($("#" + id).val())) {
            valid = false;
            setError(id, "Debe ser un valor entero numerico");
        } else {
            if (0 > $("#" + id).val()) {
                valid = false;
                setError(id, "Debe ser un valor numerico positivo");
            } else {
                clearError(id);
            }
        }

        return valid;
    }

    function editarReservacion() {
        var inputFechaInicioEditar = $("#inputFechaInicioEditar").val();
        var inputFechaFinEditar = $("#inputFechaFinEditar").val();
        var inputAdultosEditar = $("#inputAdultosEditar").val();
        var inputNinosEditar = $("#inputNinosEditar").val();
        var inputEstadoEditar = $("#inputEstadoEditar option:selected").val();
        $.ajax({
            type: "post",
            url: "<?php echo url_for("reservacion_lista/save"); ?>",
            data: {
                id: "<?php echo $decReservacion->getResId(); ?>",
                inputFechaInicio: inputFechaInicioEditar,
                inputFechaFin: inputFechaFinEditar,
                inputAdultos: inputAdultosEditar,
                inputNinos: inputNinosEditar,
                inputEstado: inputEstadoEditar
            },
            success: function (data) {
                $(location).attr("href", "<?php echo url_for("reservacion_lista/index"); ?>");
            }
        });
    }

    function getProducts() {
        $("#divProducts").html("<center><img src='<?php echo image_path("preloader.gif"); ?>'></center>");
        $.ajax({
            type: "post",
            dataType: "html",
            url: "<?php echo url_for("reservacion_lista/getProducts"); ?>",
            data: {
                id: "<?php echo $decReservacion->getResId(); ?>"
            },
            success: function (data) {
                $("#divProducts").html(data);
            }
        });
    }

    function resertModal() {
        $(".spinner input").val(1);
        $("#selectCategoria").val(0);
        $("#selectProducto").html("<option value='0'>Seleccione uno</option>");
    }

    function getProductsFromCategory() {
        var catId = $("#selectCategoria option:selected").val();
        if (catId > 0) {
            $.ajax({
                type: "post",
                dataType: "html",
                url: "<?php echo url_for("reservacion_lista/getProductsFromCategory"); ?>",
                data: {
                    id: catId
                },
                success: function (data) {
                    $("#selectProducto").html(data);
                }
            });
        } else {
            $("#selectProducto").html("<option value='0'>Seleccione uno</option>");
        }
    }

    function addNewProduct() {
        var proId = $("#selectProducto option:selected").val();
        var cantidad = $(".spinner input").val();
        if (proId > 0) {
            $("#myModal").modal("hide");
            $.ajax({
                type: "post",
                url: "<?php echo url_for("reservacion_lista/addNewProduct"); ?>",
                data: {
                    id: "<?php echo $decReservacion->getResId(); ?>",
                    proId: proId,
                    cantidad: cantidad
                },
                success: function (data) {
                    getProducts();
                }
            });
        }
    }

    function deleteFacturaDetalle(id) {
        $.ajax({
            type: "post",
            url: "<?php echo url_for("reservacion_lista/deleteFacturaDetalle"); ?>",
            data: {
                id: id
            },
            success: function (data) {
                getProducts();
            }
        });
    }
</script>